Major heap Minor heaps Stacks 1 2 3

نویسنده

  • Damien Doligez
چکیده

We describe and prove the correctness of a new concurrent mark-and-sweep garbage collection algorithm. This algorithm derives from the classical on-they algorithm from Dijkstra et al. 9]. A distinguishing feature of our algorithm is that it supports multiprocessor environments where the registers of running processes are not readily accessible, without imposing any overhead on the elementary operations of loading a register or reading or initializing a eld. Furthermore our collector never blocks running mutator processes except possibly on requests for free memory; in particular , updating a eld or creating or marking or sweeping a heap object does not involve system-dependent synchronization primitives such as locks. We also provide support for process creation and deletion, and for managing an ex-tensible heap of variable-sized objects. 1 Introduction Concurrent garbage collection has a well-deserved reputation for being a tough problem. This is evidenced by the discrepancies between the state of theory and practice in this area. As we shall see below, the published proven algorithms often contain simplifying assumptions that cannot be met in practice in a multiprocessor system, because this would either impose unbearable overhead on the mutator processes, or require a degree of hardware and/or operating system support that compromises portability. Implemented systems that do not fall in the latter two categories often rely on incompletely formalized algorithms, which generally means buggy algorithms, given the subtleness of the correct-ness proofs. To our knowledge, and as we shall argue below, all published concurrent collectors fall in one of the above categories , and thus fail to meet at least one of the basic requirements for portable, eeective garbage collection on mul-tiprocessors. In fact the only proposal that even attempts to meet these requirements is the Doligez-Leroy hybrid collector 10]. Unfortunately, the algorithm they proposed was incompletely speciied and, perhaps not unexpectedly, buggy.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dualheap Selection Algorithm: Efficient, Inherently Parallel and Somewhat Mysterious

An inherently parallel algorithm is proposed that efficiently performs selection: finding the K-th largest member of a set of N members. Selection is a common component of many more complex algorithms and therefore is a widely studied problem. Not much is new in the proposed dualheap selection algorithm: the heap data structure is from J.W.J. Williams [1], the bottom-up heap construction is fro...

متن کامل

Layered Heaps Beating Standard and Fibonacci Heaps in Practice

We consider the classic problem of designing heaps. Standard binary heaps run faster in practice than Fibonacci heaps but have worse time guarantees. Here we present a new type of heap that runs faster in practice than both standard binary and Fibonacci heaps, but has asymptotic insert times arbitrarily better than O(logn), namely O((logn)) for arbitrary positive integer m. Our heap is defined ...

متن کامل

Heaps and Stacks in Distributed Shared Memory

Software-based distributed shared memory (DSM) systems do usually not provide any means to use shared memory regions as stacks or via an efficient heap memory allocator. Instead DSM users are forced to work with very rudimentary and coarse grain memory (de-)allocation primitives. As a consequence most DSM applications have to “reinvent the wheel”, that is to implement simple stack or heap seman...

متن کامل

Symmetric Min-Max Heap: A Simpler Data Structure for Double-Ended Priority Queue

Several data structures have been proposed to implement double-ended priority queue operations in O(log n) time, e.g., Min-Max heap [ 11, Deap [2], Diamond deque [3] and back-to-back heap [4]. In MinMax heaps, the even layers form a Min-heap and the odd layers form a Max-heap. Deap has separate Minheaps and Max-heaps that are built on the left and right subtrees, respectively. In Diamond deque,...

متن کامل

Rank-Pairing Heaps

We introduce the rank-pairing heap, a heap (priority queue) implementation that combines the asymptotic efficiency of Fibonacci heaps with much of the simplicity of pairing heaps. Unlike all other heap implementations that match the bounds of Fibonacci heaps, our structure needs only one cut and no other structural changes per key decrease; the trees representing the heap can evolve to have arb...

متن کامل

Pairing Heaps with Costless Meld

Improving the structure and analysis in [1], we give a variation of the pairing heaps that has amortized zero cost per meld (compared to an O(log log n) in [1]) and the same amortized bounds for all other operations. More precisely, the new pairing heap requires: no cost per meld, O(1) per find-min and insert, O(log n) per delete-min, and O(log log n) per decrease-key. These bounds are the best...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008